<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .a {
            width: 200px;
            height: 200px;
            float: left;
            margin: 10px;
            background-color: #f00;
        }

        .b {
            width: 200px;
            height: 300px;
            float: right;
            margin: 10px;
            background-color: #f00;
        }

        .box {
            /* overflow: hidden; */
        }

        .clearfix:after {
            content: "";
            display: block;
            clear: both;
        }
    </style>
</head>

<body>

    <!-- 

        高度塌陷：浮动脱离文档流，导致父元素高度为0  

        清除浮动的方法
            1 添加一个父元素，在父元素上写高度  -----  缺点：高度写死了，无法实现自适应
            2 在所有的浮动元素后面加一个空的div--块级元素   clear:both/left/right   缺点：  代码冗余 
            3 在父元素加overflow:hidden    缺点：盒子超出的部分无法显示  --- 无法实现二级菜单
            4 万能清除法

     -->

    <div class="box cl">
        <div class="a"></div>
        <div class="b"></div>
        <!-- <div style="clear: both;"></div> -->
    </div>


    <!-- <ul class="cl">
        <li></li>
        <li></li>
        <li></li>
        <li style="clear: both;"></li>
    </ul> -->

</body>

</html>